import os
import shutil
from PIL import Image

# 设置下载目录路径
download_folder = os.path.join(os.path.expanduser('~'), 'Downloads')

# 设置怪物文件夹路径
monster_folder = os.path.join(download_folder, '怪物')

# 设置目标文件夹路径
target_folder = os.path.join(download_folder, 'stand2')

# 如果目标文件夹不存在，则创建
if not os.path.exists(target_folder):
    os.makedirs(target_folder)

# 遍历每个怪物文件夹
for monster_name in os.listdir(monster_folder):
    monster_path = os.path.join(monster_folder, monster_name)
    if os.path.isdir(monster_path):
        # 创建怪物文件夹
        monster_target_folder = os.path.join(target_folder, monster_name)
        if not os.path.exists(monster_target_folder):
            os.makedirs(monster_target_folder)
        # 遍历每个怪物文件夹下的文件夹
        for folder_name in os.listdir(monster_path):
            folder_path = os.path.join(monster_path, folder_name)
            if os.path.isdir(folder_path):
                # 判断文件夹是否为_stand_3
                if 'stand_3' in folder_name:
                    # 复制文件夹下的所有文件
                    for file_name in os.listdir(folder_path):
                        file_path = os.path.join(folder_path, file_name)
                        if os.path.isfile(file_path):
                            # 获取文件名和扩展名
                            file_name, file_ext = os.path.splitext(file_name)
                            # 只处理 png 文件
                            if file_ext.lower() != '.png':
                                continue
                            # 复制文件到目标文件夹
                            shutil.copy(file_path, monster_target_folder)
                            # 打开复制后的图片
                            img = Image.open(os.path.join(monster_target_folder, file_name + file_ext))
                            # 获取图片的透明通道
                            alpha = img.split()[-1]
                            # 获取图片的有效区域
                            box = alpha.getbbox()
                            # 裁剪图片的有效区域
                            img = img.crop(box)
                            # 保存裁剪后的图片
                            img.save(os.path.join(monster_target_folder, file_name + file_ext))
                            print(f'复制图片 {file_path} 到 {monster_target_folder} 成功，裁剪并重命名为 {file_name}_cut{file_ext}')